.TH HAL_INPUT "1" "2007-02-25" "Documentacion de LinuxCNC" "Manual HAL de usuario"
.de TQ
.br
.ns
.TP \\$1
..
.SH NOMBRE
hal_input \- controla los pines HAL con cualquier dispositivo de entrada de Linux, incluidos los dispositivos USB HID
.SH SINOPSIS
\fIloadusr\fR \fBhal_input\fR \fI[\-KRAL] inputspec ...\fR
.SH DESCRIPCION
hal_input es una interfaz entre HAL y cualquier dispositivo de entrada de Linux, incluido 
dispositivos USB HID. Para cada dispositivo nombrado, \fBhal_input\fR crea los pines correspondientes
a sus teclas, ejes absolutos, y leds. Sincroniza el dispositivo y los pines HAL a una tasa fija de
aproximadamente 10 ms,
.SH ESPECIFICACIONES DE ENTRADA
\fIinputspec\fR puede estar en una de varias formas:
.TP
Una cadena \fIS\fR
Se comparara una subcadena o un patron de estilo de shell con el "nombre"
del dispositivo, el "phys" (que proporciona informacion sobre como está conectado),
y el "id", que es una cadena con el formato "Bus = ... Vendor = ... Product = ...
Version = ... ". Puede ver el nombre, el estado fisico y la identificacion de los dispositivos
conectados ejecutando \fBless /proc/bus/input/devices\fR. Ejemplos:
.RS 12
.PD 0
SpaceBall
.PP
"Vendor=001f Product=0001"
.PP
serio*/input0
.RE
.PD
.TP
Un numero \fIN\fR
Esto abre \fB /dev/input/event\fIN\fR. A excepcion de los dispositivos que estan siempre
conectados al sistema, este numero puede cambiar durante los reinicios o cuando el dispositivo
es removido. Por esta razon, no se recomienda usar un numero entero.
.PP
Cuando varios dispositivos están identificados por la misma cadena, agregue "\fB:\fIN\fR" donde
\fIN\fR es el indice del dispositivo deseado. Por ejemplo, si \fBMouse\fR
coincide con \fBinput3\fR y con \fBinput10\fR, entonces \fBMouse\fR y \fBMouse:0\fR
selecciona \fBinput3\fR. Especificando \fBmouse:1\fR selecciona\fRinput10\fR.
.PP
Para dispositivos que aparecen como entradas multiples en /dev/input, es probable que estos indices
permanezcan igual cada vez. Para multiples dispositivos idénticos,
es probable que los indices dependan del orden de insercion, pero permanezcan iguales en
el reinicio, siempre que los dispositivos no se muevan a puertos diferentes o se desenchufen
mientras se arranca la maquina.
.PP
Si el primer caracter de \fIinputspec\fR es un "+", entonces \fBhal_input\fR
solicita acceso exclusivo al dispositivo. Se utiliza l primer dispositivo que
coincida con \fIinputspec\fR. Se puede usar cualquier numero de \fIinputspec\fRs.
.PP
La opcion \fIsubset\fI puede preceder a cada \fIinputspec\fR. La opcion sunset
comienza con un guion. Cada letra en la opcion subset especifica una carecteristica
del dispositivo a \fBincluir\fR. Se excluyen las caracteristicas que no esten especificadas.
Por ejemplo, para exportar los LED del teclado a HAL sin exportar teclas, use
.RS 12
hal_input \-L \fIkeyboard\fR ...
.RE

.SH CARACTERISTICAS DEL DISPOSITIVO SOPORTADAS
.IP \(bu 4
EV_KEY (botones y teclas). Subset \-K
.IP \(bu 4
EV_ABS (entradas analogicas absolutas). Subset \-A
.IP \(bu 4
EV_REL (entradas analogicas relativas). Subset \-R
.IP \(bu 4
EV_LED (salidas LED). Subset \-L
.SH PINES Y PARAMETROS HAL
.SS Para botones
.TP
.B input.\fIN\fB.btn\-\fIname\fR bit out
.TQ
.B input.\fIN\fB.btn\-\fIname\fB\-not\fR bit out
Creado para cada boton en el dispositivo.
.SS Para teclas
.TP
.B input.\fIN\fB.key\-\fIname\fB
.TQ
.B input.\fIN\fB.key\-\fIname\fB\-not
Creado para cada tecla en el dispositivo.
.SS para ejes absolutos
.TP
.B input.\fIN\fB.abs\-\fIname\fB\-counts\fR s32 out
.TQ
.B input.\fIN\fB.abs\-\fIname\fB\-position\fR float out
.TQ
.B input.\fIN\fB.abs\-\fIname\fB\-scale\fR parameter float rw
.TQ
.B input.\fIN\fB.abs\-\fIname\fB\-offset\fR parameter float rw
.TQ
.B input.\fIN\fB.abs\-\fIname\fB\-fuzz\fR parameter s32 rw
.TQ
.B input.\fIN\fB.abs\-\fIname\fB\-flat\fR parameter s32 rw
.TQ
.B input.\fIN\fB.abs\-\fIname\fB\-min\fR parameter s32 r
.TQ
.B input.\fIN\fB.abs\-\fIname\fB\-max\fR parameter s32 r
Creado para cada eje absoluto en el dispositivo. Posiciones del dispositivo mas cercanas que
\fBflat\fR a \fBoffset\fR se reportan como \fBoffset\fR en \fBcounts\fR, y
\fBcounts\fR no cambia hasta que la posicion del dispositivo cambie al menos
\fBfuzz\fR. La posicion se calcula como 

\fBposition\fR = (\fBcounts\fR \-\fBoffset\fR) / \fBscale\fR

El valor predeterminado de \fBscale\fR y \fBoffset\fR
asigna el rango del eje reportado por el sistema operativo a [\-1,1].
Los valores predeterminados de \fBfuzz\fR y \fBflat\fR son los informados por el operador del
sistema. Los valores de \fBmin\fR y \fBmax\fR son los reportados por el
sistema operativo.
.SS para ejes relativos
.TP
.B input.\fIN\fB.rel\-\fIname\fB\-counts\fR s32 out
.TQ
.B input.\fIN\fB.rel\-\fIname\fB\-position\fR float out
.TQ
.B input.\fIN\fB.rel\-\fIname\fB\-reset\fR bit in
.TQ
.B input.\fIN\fB.rel\-\fIname\fB\-scale\fR parameter float rw
.TQ
.B input.\fIN\fB.rel\-\fIname\fB\-absolute\fR parameter s32 rw
.TQ
.B input.\fIN\fB.rel\-\fIname\fB\-precision\fR parameter s32 rw
.TQ
.B input.\fIN\fB.rel\-\fIname\fB\-last\fR parameter s32 rw
Creado para cada eje relativo en el dispositivo. Siempre que \fBreset\fR sea TRUE,
\fBcounts\fR se restablece a cero independientemente de cualquier movimiento anterior o actual del eje.
De lo contrario, \fBcounts\fR aumenta o disminuye de acuerdo con el movimiento del
eje. \fBcounts\fR se divide por\fRposition \-scale\fR para dar \fBposition\fR.
El valor predeterminado de \fBposition\fR es 1. Hay algunos dispositivos, en particular
ruedas de desplazamiento, que devuelven valores con signo con resolucion menor de 32 bits.
El valor predeterminado de \fBprecision\fR es 32. \fBprecision\fR se puede establecer en 8
para un dispositivo que devuelve valores de 8 bits con signo, o cualquier otro valor de 1 a 32.
\fBabsolute\fR, cuando se establece TRUE, ignora los eventos duplicados con el mismo valor.
Esto permite que los dispositivos que repiten eventos sin ninguna accion del usuario funcionen.
correctamente. \fBlast\fR muestra el valor de conteo mas reciente devuelto por el
dispositivo, y se utiliza en la implementacion de \fBabsolute\fR.
.SS para LEDs
.TP
.B input.\fIN\fB.led\-\fIname\fR bit out
.TQ
.B input.\fIN\fB.led\-\fIname\fB\-invert\fR parameter bit rw
Creado para cada LED en el dispositivo.
.SH PERMISOS Y UDEV
Por defecto, los dispositivos de entrada pueden no ser accesibles para
usuarios - \fBhal_input\fR requiere acceso de lectura y escritura, incluso si el dispositivo no tiene
salidas.

Las diferentes versiones de udev tienen sintaxis ligeramente diferentes e incompatibles.
Por esta razon, no es posible que esta pagina de manual brinde informacion y ejemplo preciso.
.B udev(7)
La pagina de manual documenta la sintaxis utilizada en su distribucion de Linux.
Para verlo en un terminal, el comando es

.BR "man 7 udev".

.SH ERRORES
El estado inicial de las teclas, botones y ejes absolutos se informa erroneamente
como FALSE o 0 hasta que se reciba un evento para esa tecla, boton o eje.
.SH VER TAMBIEN
\fBudev(8)\fR, \fBudev(7)\fR

